package xyz.lwm.lazycat.web.handle;

/**
 * handler
 *
 * @author lwm
 */
@FunctionalInterface
public interface Handler {

    /**
     * <h3>业务处理</h3>
     * <pre>
     * 说明:
     * 1、如果是前置拦截器, 想中断业务, 就直接抛出异常即可, 此时会返回异常数据;
     * 2、如果是业务处理, 就正常处理即可;
     * 3、如果想中止当前 handle 操作, 直接 return 即可;
     * 4、如果想中止所有 handle 操作, 请使用 {@link Context#end()}, 请查看{@link HandlerChain#handle(Context)};
     * </pre>
     *
     * @param ctx http context
     */
    void handle(Context ctx);

}